package com.udp;

import java.net.DatagramPacket;
import java.net.DatagramSocket;

/**UDP 通信  入门案例
 * 服务端*/
public class UDPTest {
    public static void main(String[] args) {
        //创建服务端接收数据的DatagramSocket 对象
        DatagramSocket datagramSocket = null;
        try{
            //指定端口号
            datagramSocket = new DatagramSocket(9999);
            //创建数据缓冲区  字节数组
            byte[] b = new byte[1024];
            //创建数据报包对象
            DatagramPacket dp = new DatagramPacket(b,b.length);
            //等待接收客户端所发送的消息，没有接收到数据时，线程处于阻塞状态
            datagramSocket.receive(dp);
            //getData():获取发送或者接收的数据  是字节类型的，要转为字符类型
            //dp.getLength()返回数据在数组的长度
            String str = new String(dp.getData(),0, dp.getLength());
            System.out.println(str);
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if(datagramSocket != null){
                datagramSocket.close();
            }
        }
    }
}
